#ifndef JSONTOOL_H
#define JSONTOOL_H
#include <QObject>
#include <QVariantMap>
#include <QJsonObject>
#include <QVector>
#include <QVariant>
#include <QDebug>
#include <QJsonDocument>
#include <QJsonArray>
class Entity:public QObject
{
    //Q_OBJECT
public:
    // 构造函数
    Entity(QObject *parent = nullptr) : QObject(parent) {}

    // 添加属性和值的方法
    void setProperty(const QString &name, const QVariant &value) {
        properties[name] = value;
    }

    // 获取属性值的方法
    QVariant getProperty(const QString &name) const {
        if (properties.contains(name)) {
            return properties[name];
        }
        return QVariant();
    }

    // 转换为 JSON 对象的方法
    QJsonObject toJsonObject() const {
        QJsonObject jsonObject;
        for (const QString &name : properties.keys()) {
            jsonObject[name] = QJsonValue::fromVariant(properties.value(name));
        }
        return jsonObject;
    }

private:
    QVariantMap properties;
};

class JsonTool
{
public:
    JsonTool();
public:
    static QString success(const Entity& entity);
    static QString success(const QVector<Entity>& entityVector);
    static QString success(const  QJsonArray& array);
    static QString success(const  QJsonObject& jsonObject);
    static QString success(QString data);
    static QString failed(int code,QString msg);
};

#endif // JSONTOOL_H
